package com.kaizeli.website.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kaizeli.website.pojo.entity.AcceptanceNode;
import com.kaizeli.website.pojo.dto.AcceptanceNodeDTO;
import com.kaizeli.website.response.Result;

import java.util.List;

/**
 * 验收节点服务接口
 */
public interface AcceptanceNodeService extends IService<AcceptanceNode> {

    /**
     * 根据项目ID查询验收节点列表
     */
    Result<List<AcceptanceNodeDTO>> getAcceptanceNodesByProjectId(Long projectId);

    /**
     * 根据项目ID和状态查询验收节点
     */
    Result<List<AcceptanceNodeDTO>> getAcceptanceNodesByProjectIdAndStatus(Long projectId, String status);

    /**
     * 创建验收节点
     */
    Result<AcceptanceNode> createAcceptanceNode(AcceptanceNode acceptanceNode);

    /**
     * 更新验收节点状态
     */
    Result<Void> updateAcceptanceNodeStatus(Long id, String status);

    /**
     * 更新实际验收时间
     */
    Result<Void> updateActualAcceptanceDate(Long id, String actualAcceptanceDate);

    /**
     * 提交验收节点
     */
    Result<Void> submitAcceptanceNode(Long id);

    /**
     * 审核验收节点
     */
    Result<Void> reviewAcceptanceNode(Long id, String status, String remark);

    /**
     * 完成验收节点
     */
    Result<Void> completeAcceptanceNode(Long id);
}
